var reg = new RegExp(/^[0-9]{1,2}$/);
var numReg = new RegExp(/^[0-9]+(.[0-9]+)?$/);

$.validator.addMethod("isNumber", function(value) {
	return value && numReg.test(value);
}, '');

$(function() {
	$("#addparcel").click(function() {
		if($(this).attr("id") == "addparcel") {
			if($("input[name='weight']").length < 10) {
				createParcel(this,1);
			}
		} else {
			$(this).parent().parent().remove();
		}
	});
	
	$("#parcelNum").blur(function() {
		var parcelNum = $(this).val();
		if(parcelNum && reg.test(parcelNum)) {
			var allNum = parseInt(parcelNum);
			var existNum = $("input[name='weight']").length;
			if(allNum >1 && allNum < 11 && allNum > existNum) {
				createParcel($("#addparcel"),allNum-existNum);
			}
		}
	});
	
	$("#form1").validate({
		rules:{
			weight:{
				required:true,
				isNumber:true
			},
			length:{
				required:true,
				isNumber:true
			},
			width:{
				required:true,
				isNumber:true
			},
			height:{
				required:true,
				isNumber:true
			}
		},
		messages:{
			weight:{
				required:"",
				isNumber:""
			},
			length:{
				required:"",
				isNumber:""
			},
			width:{
				required:"",
				isNumber:""
			},
			height:{
				required:"",
				isNumber:""
			}
		},
		submitHandler: function(form) {
			var f = true;
			$("input[name='weight']").each(function() {
				var val = $(this).val();
				if(!val || !numReg.test(val)) {
					$(this).addClass("error");
					f = false;
				}
			});
			$("input[name='length']").each(function() {
				var val = $(this).val();
				if(!val || !numReg.test(val)) {
					$(this).addClass("error");
					f = false;
				}
			});
			$("input[name='width']").each(function() {
				var val = $(this).val();
				if(!val || !numReg.test(val)) {
					$(this).addClass("error");
					f = false;
				}
			});
			$("input[name='height']").each(function() {
				var val = $(this).val();
				if(!val || !numReg.test(val)) {
					$(this).addClass("error");
					f = false;
				}
			});
			if(f) {
				form.submit();
			} else {
				return false;
			}
		},
		debug :true
	});
});

function createParcel(obj,num) {
	for(var i=0; i<num; i++) {
		var tr = $(obj).parent().parent();
		var table = tr.parent();
		var c = tr.clone(true);
		$("input",c).each(function() {
			this.value = "";
			$(this).removeClass("error");
		});
		var imgPath = $("img:last",c).attr("src").replace("add-a-parcel-plus-icon","remove-parcel-dimensions-minus-icon");
		$("a:last",c).removeAttr("id");
		$("img:last",c).attr("src",imgPath);
		c.appendTo(table);
	}
}